Streaming video over the Internet has become a phenomenon in modern times. Many popular websites, such as YouTube, a service of Google, Inc. of Mountain View, Calif., and WatchESPN, a service of ESPN of Bristol, Conne., utilize streaming video in order to provide video and television programming to consumers via the Internet.
Video data is often compressed to facilitate the storage and transmission of video data, particularly over networks such as the Internet. A number of video compression standards (codecs) exist, including MPEG2 by the Moving Picture Experts Group (MPEG) of the International Organization for Standardization (ISO) of Geneva, Switzerland, with the International Electrotechnical Commission (IEC) of Geneva, Switzerland, MPEG4 by the ISO/IEC MPEG, and H.264/MPEG4 AVC by the International Telecommunication Union Telecommunication Standardization Sector of Geneva, Switzerland. Video data is compressed, also known as encoded, using an encoder. Encoded video data is decompressed using a decoder corresponding to the encoder used to encode the video data.
Scalable Video Coding (SVC) is an extension of the H.264/MPEG-4 AVC video compression standard, which is specified by the ITU-T H.264 standard by the International Telecommunication Union Telecommunication Standardization Sector of Geneva, Switzerland. SVC enables the encoding of a video bitstream that additionally contains one or more sub-bitstreams. The sub-bitstreams are derived from the video bit-stream by dropping packets of data from the video bitstream, resulting in a sub-bitstream of lower quality and lower bandwidth than the original video bitstream. SVC supports three forms of scaling a video bitstream into sub-bitstreams: temporal scaling, spatial scaling, and quality scaling. Each of these scaling techniques can be used individually or combined depending on the specific video system.
Pulse Code Modulation (PCM) is a method used to create a digital representation of analog signals, including analog audio data. A PCM stream is a digital representation of an analog signal where the magnitude of the analog signal is sampled at uniform intervals, known as the sample rate, and quantized to a value within a range of digital steps. PCM streams are commonly created using analog to digital converters, and are decoded using digital to analog converters. Systems and methods for performing pulse code modulation of analog signals are described in U.S. Pat. No. 2,801,281, entitled “Communication System Employing Pulse Code Modulation” to Oliver et al., dated Jul. 30, 1957, the entirety of which is incorporated by reference.
A variety of multimedia containers may be used to store encoded multimedia content, including the Matroska container. The Matroska container is a media container developed as an open standard project by the Matroska non-profit organization of Aussonne, France. The Matroska container is based upon Extensible Binary Meta Language (EBML), which is a binary derivative of the Extensible Markup Language (XML). Decoding of the Matroska container is supported by many consumer electronics (CE) devices. The DivX Plus file format developed by DivX, LLC of San Diego, Calif. utilizes an extension of the Matroska container format, including elements that are not specified within the Matroska format.
In adaptive streaming systems, multimedia content is typically stored on a media server as a top level index file pointing to a number of alternate streams that contain the actual video and audio data. Each stream is typically stored in one or more container files. A variety of container files, including the Matroska container, may be utilized in adaptive streaming systems.